$(function(){

	$('a.canceltempsetup').on('click',function(){
		history.go(-1);
	});

	//保存
	$('a.keeptempsetup').on('click',function(){
		//模板名称
		var tempname = $.trim($('.tempname').eq(0).find('input[type=text]').val());
		if(tempname=='') {
			showerror(0,tipstext[0],$('.tempname').eq(0));
			return;
		};
		//是否包邮
		if($('.tempname').eq(1).find('.selected').length<1) {
			showerror(1,tipstext[4],$('.tempname').eq(1));
			return;
		};
		var notFree = $('.tempname').eq(1).find('i').eq(0).hasClass('selected');
		if(notFree){
			//计价方式
			/*
			if($('.tempname').eq(2).find('.selected').length<1) {
				showerror(2,tipstext[5],$('.tempname').eq(2));
				return;
			};
			var priceUnit = $('.tempname').eq(2).find('i.selected').attr('vid');
			*/
			var priceUnit = 1;
			//运送方式
			if($('.tempname').eq(2).find('.selected').length<1) {
				showerror(2,tipstext[1],$('.tempname').eq(2));
				return;
			};
			if(checkselectway()) {
				var _this = $('.selectway i.selected').parent().siblings(),fa,fb;
				_this.find($("[setnum='num']")).each(function(i){
					var this_ = $(this);
					if(!testval(this_)) {
						showerror(i,tipstext[9],$(this).parent());
						fa = true;
					} else {fa = false;};
				});
				_this.find($("[setnum='price']")).each(function(i){
					var this_ = $(this);
					if(!testmoney(this_)) {
						showerror(i,tipstext[8],$(this).parent());
						fb = true;
					} else {fb = false;};
				});
				if(fa==true || fb==true) return;
			};

			if($("[area='empty']").length>0) {
				$("[area='empty']").each(function(i){
					showerror(i,tipstext[2],$("[area='empty']").eq(i));
				});
				return;
			};

			var methods = $('.selectway i.selected');
			var arr = new Array();
			var jsonArray = '';
			methods.each(function(i){
				var method = $(this);
				var inputs = method.parent().siblings().find($(".nametext"));
				var sub = '{deliveryMethodId:'+method.attr('mid')+',inRange:'+inputs.eq(0).val()+',inRangePrice:'+inputs.eq(1).val()+',outRangeWeight:'+inputs.eq(2).val()+',outRangePrice:'+inputs.eq(3).val();
				//console.log(sub);
				var areaTds = method.parent().siblings().find($("[areaIds]"));
				var arr2 = new Array();
				areaTds.each(function(i){
					var areaTd = $(this);
					var vs = areaTd.parent().parent().parent().parent().siblings().find('input');
					arr2.push('{inRange:'+vs.eq(0).val()+',inRangePrice:'+vs.eq(1).val()+',outRangeWeight:'+vs.eq(2).val()+',outRangePrice:'+vs.eq(3).val()+',areas:\"'+areaTd.attr('areaIds')+'\",areaNames:\"'+areaTd.text()+'\"}');
				});
				if(arr2.length > 0){
					//console.log(arr2.toString());
					sub += ',destinations:['+arr2.toString()+']';
				}
				sub += '}';
				arr.push(sub);
			});
			if(arr.length > 0){
				jsonArray = '['+arr.toString()+']';
			}
			console.log(jsonArray);

			//保存数据
			$.post("/freight/add",{
				name:tempname,
				isFree:!notFree,
				priceUnit:priceUnit,
				jsonStr:jsonArray
			},function(result){
				window.location.href = '/freight/list/1';
			});
		}else{
			//保存数据
			$.post("/freight/add",{
				name:tempname,
				isFree:!notFree
			},function(result){
				window.location.href = '/freight/list/1';
			});
		}
	});

	//修改
	$('a.keeptempupdate').on('click',function(){
		var tempId = $('#tempId').val();
		//模板名称
		var tempname = $.trim($('.tempname').eq(0).find('input[type=text]').val());
		if(tempname=='') {
			showerror(0,tipstext[0],$('.tempname').eq(0));
			return;
		};
		//是否包邮
		if($('.tempname').eq(1).find('.selected').length<1) {
			showerror(1,tipstext[4],$('.tempname').eq(1));
			return;
		};
		var notFree = $('.tempname').eq(1).find('i').eq(0).hasClass('selected');
		if(notFree){
			//计价方式
			/*
			 if($('.tempname').eq(2).find('.selected').length<1) {
			 showerror(2,tipstext[5],$('.tempname').eq(2));
			 return;
			 };
			 var priceUnit = $('.tempname').eq(2).find('i.selected').attr('vid');
			 */
			var priceUnit = 1;
			//运送方式
			if($('.tempname').eq(2).find('.selected').length<1) {
				showerror(2,tipstext[1],$('.tempname').eq(2));
				return;
			};
			if(checkselectway()) {
				var _this = $('.selectway i.selected').parent().siblings(),fa,fb;
				_this.find($("[setnum='num']")).each(function(i){
					var this_ = $(this);
					if(!testval(this_)) {
						showerror(i,tipstext[9],$(this).parent());
						fa = true;
					} else {fa = false;};
				});
				_this.find($("[setnum='price']")).each(function(i){
					var this_ = $(this);
					if(!testmoney(this_)) {
						showerror(i,tipstext[8],$(this).parent());
						fb = true;
					} else {fb = false;};
				});
				if(fa==true || fb==true) return;
			};

			if($("[area='empty']").length>0) {
				$("[area='empty']").each(function(i){
					showerror(i,tipstext[2],$("[area='empty']").eq(i));
				});
				return;
			};

			var methods = $('.selectway i.selected');
			var arr = new Array();
			var jsonArray = '';
			methods.each(function(i){
				var method = $(this);
				var inputs = method.parent().siblings().find($(".nametext"));
				var sub = '{deliveryMethodId:'+method.attr('mid')+',inRange:'+inputs.eq(0).val()+',inRangePrice:'+inputs.eq(1).val()+',outRangeWeight:'+inputs.eq(2).val()+',outRangePrice:'+inputs.eq(3).val();
				//console.log(sub);
				var areaTds = method.parent().siblings().find($("[areaIds]"));
				var arr2 = new Array();
				areaTds.each(function(i){
					var areaTd = $(this);
					var vs = areaTd.parent().parent().parent().parent().siblings().find('input');
					arr2.push('{inRange:'+vs.eq(0).val()+',inRangePrice:'+vs.eq(1).val()+',outRangeWeight:'+vs.eq(2).val()+',outRangePrice:'+vs.eq(3).val()+',areas:\"'+areaTd.attr('areaIds')+'\",areaNames:\"'+areaTd.text()+'\"}');
				});
				if(arr2.length > 0){
					//console.log(arr2.toString());
					sub += ',destinations:['+arr2.toString()+']';
				}
				sub += '}';
				arr.push(sub);
			});
			if(arr.length > 0){
				jsonArray = '['+arr.toString()+']';
			}
			console.log(jsonArray);

			//保存数据
			$.post("/freight/update/"+tempId,{
				name:tempname,
				isFree:!notFree,
				priceUnit:priceUnit,
				jsonStr:jsonArray
			},function(result){
				window.location.href = '/freight/list/1';
			});
		}else{
			//保存数据
			$.post("/freight/update/"+tempId,{
				name:tempname,
				isFree:!notFree
			},function(result){
				window.location.href = '/freight/list/1';
			});
		}
	});

	var tipstext = ['模版名称最少由1个字组成，最多不超过25个字，尽量不要用特殊字符，（比如引号，尖括号。）','请至少选择一种运送方式','指定地区城市为空或者错误','数字非法','请选择是否包邮','请选择计费方式','切换计价方式后，所设置当前模板的运输信息将被清空，确定继续么？','确定删除该信息？','费用为0.00至999.99的数字','件数应为正整数','已经超出可选的地区了'];

	function testmoney(obj){
		var objval = parseFloat($(obj).val()).toFixed(2);
		if(objval >=0 && objval<=999.99) {
			return true;
		} else {
			return false
		};
	};
	
	function testval(obj){
		var objval = parseInt($(obj).val());
		if(!isNaN(objval)&&objval>0) {
			return true;
		} else {
			return false
		};
	};
	
	var flag;
	function checkselectway(){
		$('.selectway').each(function(i){
			if($(this).find('i').hasClass('selected')) {
				flag = true;
			};
		});
		return flag;
	};

	function showerror(i,txt,obj) {
		var left = obj.offset().left + 'px',top = obj.offset().top + obj.height() + 'px';
		obj.append('<div class="tips tips'+ i +'"><div class="uparrow"></div><p><cite class="erroricon"></cite> '+txt+'</p></div>');
		if(obj.hasClass('newinputtype')){
			obj.find('.tips').css({"left":'0',"top":'28px'});
		} else {
			obj.find('.tips').css({"left":left,"top":top});
		};
		setTimeout (function(){
			obj.find('.tips').remove();
		},1000);
	};

	function setunit(){
		var text = $.trim($('.tempname').eq(2).find('i.selected').siblings('label').text());
		if(text == '按件数') {
			$('.w1 .unit').text('件内');
			$('.w3 .unit').text('件');
		};
		if(text == '按重量') {
			$('.w1 .unit').text('KG内');
			$('.w3 .unit').text('KG');
		};
		if(text == '按体积') {
			$('.w1 .unit').text('m³内');
			$('.w3 .unit').text('m³');
		};
	};
	
	$('.tempname li').click(function(){
		var _this = $(this),this_ = $(this).parents('.tempname').find('.selected');
		if($(this).parents('.tempname').index()==3 && !$(this).find('i').hasClass('selected') && this_.length>0) {
			showpopbox(tipstext[6]);
			$('.confirmbox ul li a').unbind().click(function(){
				isok();
				if($(this).hasClass('sure')) {
					_this.find('i').addClass('selected');
					_this.siblings().find('i').removeClass('selected');
					clearinfo();
					setunit();
				} else {
					this_.addClass('selected');
					this_.parents('li').siblings().find('i').removeClass('selected');
				};
			});
		} else {
			$(this).find('i').addClass('selected');
			$(this).siblings().find('i').removeClass('selected');
			if($('.tempname').eq(1).find('li:last').find('i').hasClass('selected')){
				$('.tempname').eq(2).hide();$('.tempname').eq(3).hide();
			} else {
				$('.tempname').eq(2).show();$('.tempname').eq(3).show();
			};
		};
	});

	$('.tempname dd .selectway').each(function(){
		if($(this).find('i').hasClass('selected')) $(this).siblings().show();
		else $(this).siblings().hide();
		$(this).click(function(){
			if($(this).find('i').hasClass('selected')) {
				$(this).find('i').removeClass('selected');
				$(this).siblings().hide();
			} else {
				$(this).find('i').addClass('selected');
				$(this).siblings().show();
			}
		});
	});

/* 添加地区 */
	$('.addnewtemp h1').click(creatditbox);
	
	function creatditbox(){
		var _this = $(this);
		var baseeditbox = '<table width="100%" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td width="34%">运送到</td><td width="14%">首件（件）</td><td width="14%">首费（元）</td><td width="14%">续件（件）</td><td width="14%">续费（元）</td><td width="10%">操作</td></tr><tr><td><table width="98%" border="0" cellspacing="0" cellpadding="0" class="freightleft"><tbody><tr class="editareabox"><td class="areaname" width="66%" area="empty">未添加地区</td><td class="editarea" width="34%"><a href="javascript:;">编辑</a></td></tr></tbody></table></td><td><input type="text" setnum="num" value="1" onKeyUp="clearNoNum(event,this)" onBlur="checkNum(this)" /></td><td><input type="text" setnum="price" onKeyUp="clearNoNum(event,this)" onBlur="checkNum(this)" /></td><td><input type="text" setnum="num" value="1" onKeyUp="clearNoNum(event,this)" onBlur="checkNum(this)" /></td><td><input type="text" setnum="price" onKeyUp="clearNoNum(event,this)" onBlur="checkNum(this)" /></td><td><a href="javascript:;" class="delcurarea">删除</a></td></tr></tbody></table>';
		var inserteditbox = '<tr><td><table width="98%" border="0" cellspacing="0" cellpadding="0" class="freightleft"><tbody><tr class="editareabox"><td class="areaname" width="66%" area="empty">未添加地区</td><td class="editarea" width="34%"><a href="javascript:;">编辑</a></td></tr></tbody></table></td><td><input type="text" setnum="num" value="1" onKeyUp="clearNoNum(event,this)" onBlur="checkNum(this)" /></td><td><input type="text" setnum="price" onKeyUp="clearNoNum(event,this)" onBlur="checkNum(this)" /></td><td><input type="text" setnum="num" value="1" onKeyUp="clearNoNum(event,this)" onBlur="checkNum(this)" /></td><td><input type="text" setnum="price" onKeyUp="clearNoNum(event,this)" onBlur="checkNum(this)" /></td><td><a href="javascript:;" class="delcurarea">删除</a></td></tr>';
		if(_this.parent().siblings('.newtemp').find('table').length<1) {
			_this.parent().siblings('.newtemp').append(baseeditbox);
		} else if (_this.parent().siblings('.newtemp').find('table tr.editareabox').length<areadata.length) {
			_this.parent().siblings('.newtemp').find('table').eq(0).append(inserteditbox);
		} else {
			showerror(1,tipstext[10],_this);
		};
		$('.editarea a').click(showarea);
		_this.parent().siblings('.newtemp').find('a.delcurarea').off().click(deleditareabox);
	};
	
	function deleditareabox(){
		var _this = $(this);
		var len = $(this).parents('table').find('a.delcurarea').length;
		if(len<2){
			showpopbox(tipstext[7]);
			$('.confirmbox ul li a').unbind().click(function(){
				isok();
				if($(this).hasClass('sure')) _this.parents('table').remove();
			});
		} else {
			showpopbox(tipstext[7]);
			$('.confirmbox ul li a').unbind().click(function(){
				isok();
				if($(this).hasClass('sure')) _this.parents('tr').remove();
			});
		};
	};
	function isok(){
		$('.overbg').hide();
		$('.popbox').remove();
	};
	
	function clearinfo(){
		$('.newtemp table').remove();
	};

/* 选择地区 */

	var areadata = [{"id":"1","name":"北京市"},{"id":"2","name":"天津市"},{"id":"3","name":"河北省"}];
	var areahtml = '<div class="areawrap"><div class="uparrow"></div><div class="areatitle"><h1>选择区域</h1><div class="close closearea">&times;</div></div><ul>';

	$.each(areadata,function(i){
		areahtml += "<li><i aid='"+areadata[i].id+"'></i>"+areadata[i].name+"</li>";
	});
	areahtml += '</ul><div class="clear"></div><div class="getarea"><input type="button" value="确定" class="getareatext"><input type="button" value="取消" class="closearea" /></div></div>'

	function showarea(){
		_this = $(this);
		$('.overbg').show();
		var left = $(this).offset().left-30 +'px',top = $(this).offset().top + 20 +'px';
		if($('.areawrap').length<1) {
			$(this).off();
			$('body').append(areahtml);
			$('.areawrap').css({'position':'absolute','left':left,'top':top});
			checkselectarea();
			$('.areawrap li').click(checkarea);
			$('.getareatext').click(getareaname);
			$('.closearea').click(delareabox);
		};
	};
	
	function delareabox(){
		$('.overbg').hide();
		$('.areawrap').remove();
		_this.on('click',showarea);
	};
	
	function checkselectarea(){
		$('.areawrap li').each(function(){
			var areaitemtext = $(this).text();
			var curselectedtext = _this.parent().siblings('td.areaname').text();
			var allselectedtext = _this.parents('table').find('td.areaname').text();
			if(allselectedtext.indexOf(areaitemtext)!=-1){
				$(this).find('i').addClass('disable');
				if(curselectedtext.indexOf(areaitemtext)!=-1){
					$(this).find('i').removeClass('disable').addClass('checked');
				};
			};
		});
	};

	function checkarea(){
		if(!$(this).find('i').hasClass('disable')){
			if($(this).find('i').hasClass('checked')) {
				$(this).find('i').removeClass('checked');
			} else {
				$(this).find('i').addClass('checked');
			}
		};
	};

	function getareaname(){
		var area = '',len = $('.checked').length;
		var areaIds = '';
		if(len=='0') {
			$('.areawrap').remove();
			_this.parent().siblings('td').text('未添加地区');
			_this.parent().siblings('td').removeAttr('areaIds');
			_this.parent().siblings('td').attr('area','empty');
			_this.on('click',showarea);
		} else {
			for(var i = 0;i<len;i++){
				area += $('.checked').eq(i).parent().text() + '/';
				areaIds += $('.checked').eq(i).attr('aid') + ',';
			};
			area=area.substring(0,area.length-1);
			areaIds=areaIds.substring(0,areaIds.length-1);
			_this.parent().siblings('td').text(area);
			_this.parent().siblings('td').attr("areaIds",areaIds);
			_this.parent().siblings('td').removeAttr('area');
			$('.areawrap').remove();
			_this.on('click',showarea);
		};
		$('.overbg').hide();
	};

//弹窗信息

	function showpopbox(txt) {
		$('.overbg').show();
		$('body').append('<div class="popbox"><div class="closepopbox">&times;</div><div class="poptext"><p>'+txt+'</p></div><div class="confirmbox"><ul><li><a href="javascript:;" class="sure">确定</a></li><li><a href="javascript:;" class="cancel">取消</a></li></ul></div></div>');
		$('.closepopbox').unbind().click(function(){
			$('.overbg').hide();
			$('.popbox').remove();
		});
	};

	//编辑模板
	$('.editarea a').off().click(showarea);
	$('a.delcurarea').off().click(deleditareabox);

});

function clearNoNum(event,obj){ 
	//响应鼠标事件，允许左右方向键移动 
	event = window.event||event; 
	if(event.keyCode == 37 | event.keyCode == 39){ 
		return; 
	} 
	//先把非数字的都替换掉，除了数字和. 
	obj.value = obj.value.replace(/[^\d.]/g,""); 
	//必须保证第一个为数字而不是. 
	obj.value = obj.value.replace(/^\./g,""); 
	//保证只有出现一个.而没有多个. 
	obj.value = obj.value.replace(/\.{2,}/g,"."); 
	//保证.只出现一次，而不能出现两次以上 
	obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$","."); 
}; 

function checkNum(obj){ 
	//为了去除最后一个. 
	obj.value = obj.value.replace(/\.$/g,"");
	if(obj.value!=''){
		if(obj.getAttribute('setnum')!='num')	{obj.value = parseFloat(obj.value).toFixed(2);}
		else obj.value = parseInt(obj.value);
	}
};